The technology described herein relates to a method of and apparatus for selecting sample adaptive offset options to use when encoding an array of data elements of a stream of arrays of data elements.
It is common to encode a stream of arrays of data elements, such as arrays of image data values (e.g. frames of video for display), so as to compress the data in order to reduce bandwidth and memory consumption. This is particularly desirable in data processing apparatus, e.g. of portable devices, where processing resources and power may be limited.
In order to encode a stream of arrays of data elements, each array of data elements is often divided into smaller “source” blocks of data elements and encoded on a block by block basis.
A de-blocking filter is often applied near or at the end of the decoding process, e.g. in the High Efficiency Video Coding (HEVC) standard, in order to try to improve visual quality by smoothing sharp edges which can form between or within blocks. This is then followed by a sample adaptive offset (SAO) filter, which attempts to reduce banding and ringing artefacts.
The Applicants believe that there remains scope for improvements to techniques for encoding streams of arrays of data elements.